﻿// Inner Fire 游戏引擎库
// StandardObject - 标准游戏组件
//
// Copyright (c) 2025 by 尔西大帝. All rights reserved.
//
// 所属层级：应用层（4）
// 游戏中最基础的模型。没有任何特殊的能力。
//
// Author: 尔西大帝
// Email: 2670613871@qq.com
// Created: 2025-03-12

#include "standard_object.h"

namespace ifire::game {
StandardObject::StandardObject(
    ikit::sstr name, Scene* scene, GameObject* parent)
    : GameObject(name, scene, parent) {}
StandardObject::~StandardObject() {}

void StandardObject::UpdateTransform() {
  GameObject::UpdateTransform();
  SetRenderMatrix(transform_.mat);
}

void StandardObject::SetRenderMatrix(FMat mat) {
  for (auto e : render_items_) {
    e->SetWorldMatrix(mat);
  }
}

void StandardObject::Reserve(size_t count) { render_items_.reserve(count); }

void StandardObject::AddRenderItem(dx::RenderItem* item) {
  render_items_.push_back(item);
}

} // namespace ifire::game